Data analysis for the pilot participants in PLEARN

Load Libraries and Resources

In [1]:
library('readr')
library('blabr')
library('plyr')
library('dplyr')
library('ggplot2')
library('rjson')
library('parallel')
library("readxl")
source('PLEARN_analysis_helper.R')
Attaching package: ‘dplyr’

The following objects are masked from ‘package:plyr’:

    arrange, count, desc, failwith, id, mutate, rename, summarise,
    summarize

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

In [2]:
item_properties = read.csv('../PLEARN_experiments/csv/plearn_receptiveTask_datasource.csv')
item_properties[1,]
s_formnovel_idbackground_contextvowel_carrierfull_carriers_carriers_puncts_wav_indexs_sentencepl_formTargetSidetrial_indexNovelColororderexpt_indexTargetLocDistractorLocAudioTargetTargetImageDistractorImage
book ! house in the house Can you find the in the house Can you find the ? 65 65. book... Can you find the book in the house?books NA NA NA 1 1 (640,512) (0,0) 65.wav 1_book_singular_left.png 1_book_plural_left.png
In [5]:
# audio timings for the original version ("bg_")
bg_audio_timings = getAudioTimingsFromGlob("../PLEARN_experiments/stimuli/raw_audio2/*.cut")
bg_audio_timings_with_metadata = merge(item_properties, bg_audio_timings, by.x='AudioTarget', 
    by.y='audiotarget')
bg_audio_timings_with_metadata$plural_duration = (bg_audio_timings_with_metadata$target_noun_end_time -
    bg_audio_timings_with_metadata$begin_disambig_region) * 1000 
print(nrow(bg_audio_timings_with_metadata))
[1] 63
In [19]:
# audio timings for the red/blue version ("rb_")
rb_audio_timings = getAudioTimingsFromGlob("../PLEARN_experiments/stimuli/raw_audio_simplified/*.cut")
rb_audio_timings_with_metadata = merge(item_properties, rb_audio_timings, by.x='AudioTarget', 
    by.y='audiotarget')
# we don't have duration information until Chompsky is up again 
rb_audio_timings_with_metadata$plural_duration = (rb_audio_timings_with_metadata$target_noun_end_time -
    rb_audio_timings_with_metadata$begin_disambig_region) * 1000 
print(nrow(rb_audio_timings_with_metadata))
[1] 63
In [20]:
subject_info = read.csv('subject_info.csv', stringsAsFactors=F) #No PII
subject_info$participant_name = sapply(strsplit(subject_info$filename,'_' ), function(x){x[1]})
subject_info$age_in_months = subject_info$age_in_days / 30.5
subject_info
idincludefilenameage_in_daysgendertypeexpt_versioncommentparticipant_nameage_in_months
plsm 1 smflip3_fixreport.txt NA M adult scene eyetracking only smflip3 NA
pl00 1 pl00_fixations.txt 769 F child scene pl00 25.21311
pl01 1 pl01_fixations.txt 788 F child scene pl01 25.83607
pl03 1 pl03_fixations.txt 810 F child scene pl03 26.55738
pl04 1 858 F child scene storybook only; need VNA id to get dobNA 28.13115
pl05 1 862 F child scene storybook only; need VNA id to get dobNA 28.26230
pl06 1 pl06_fixations.txt NA adult scene eyetracking only pl06 NA
pl07 1 pl07_fixations.txt NA adult scene eyetracking only pl07 NA
pl08 1 pl08_fixations.txt NA adult scene eyetracking only pl08 NA
pl09 1 pl09_fixations.txt 796 F child scene pl09 26.09836
pl10 1 pl10_fixations.txt 897 M child scene pl10 29.40984
adultpl12 1 adultpl12_fixations.txt NA adult scene adultpl12 NA
adultpl13 1 adultpl13_fixations.txt NA adult scene adultpl13 NA
adultpl14 1 adultpl14_fixations.txt NA adult scene adultpl14 NA
adultpl15 1 adultpl15_fixations.txt NA adult scene adultpl15 NA
adultpl16 1 adultpl16_fixations.txt NA adult scene adultpl16 NA
pl11 1 pl11_fixations.txt 792 M child scene pl11 25.96721
pl13 1 pl13_fixations.xlsx 1450 M child scene pl13 47.54098
pl14 1 pl14_fixations.xlsx 1057 M child scene pl14 34.65574
pl15 1 pl15_fixations.xlsx 876 F child scene pl15 28.72131
pl16 1 pl16_fixations.xlsx 1049 M child scene pl16 34.39344
pl17 1 pl17_fixations.xlsx 926 F child scene pl17 30.36066
pl18 1 pl18_fixations.xlsx 1034 F child scene pl18 33.90164
pl19 1 pl19_fixations.xlsx 947 M child scene pl19 31.04918
pl20 1 pl20_fixations.xlsx 1008 F child scene pl20 33.04918
pl21 0 pl21_fixations.xlsx 1100 F child redblue out of order reschedule pl21 36.06557
pl22 1 pl22_fixations.xlsx 1408 M child scene pl22 46.16393
pl23 1 pl23_fixations.xlsx 850 M child scene pl23 27.86885
pl24 1 pl24_fixations.xlsx 1091 M child scene pl24 35.77049
pl25 1 pl25_fixations.xlsx 1091 M child scene pl25 35.77049
pl26 0 pl26_fixations.xlsx NA child scene rescheduling pl26 NA
pl27 1 pl27_fixations.xlsx 1107 F child scene pl27 36.29508
pl28 1 pl28_fixations.xlsx 951 F child scene pl28 31.18033
pl29 1 pl29_fixations.xlsx 931 F child scene pl29 30.52459
pl30 1 pl30_fixations.xlsx 931 child redblue first redblue pl30 30.52459
pl31 1 pl31_fixations.xlsx 740 child redblue pl31 24.26230
pl33 1 pl33_fixations.xlsx 725 child redblue pl33 23.77049
pl36 1 pl36_fixations.xlsx 1079 child redblue pl36 35.37705
plad01 1 plearn_adults_plad01.xlsx NA adult redblue plearn NA
plad02 1 plearn_adults_plad02.xlsx NA adult redblue plearn NA
plad03 1 plearn_adults_plad03.xlsx NA adult redblue plearn NA
plad04 1 plearn_adults_plad04.xlsx NA adult redblue plearn NA
plad05 1 plearn_adults_plad05.xlsx NA adult redblue plearn NA
plad06 1 plearn_adults_plad06.xlsx NA adult redblue plearn NA
plad07 1 plearn_adults_plad07.xlsx NA adult redblue plearn NA
plad08 1 plearn_adults_plad08.xlsx NA adult redblue plearn NA
plad09 1 plearn_adults_plad09.xlsx NA adult redblue plearn NA
plad10 1 plearn_adults_plad10.xlsx NA adult redblue plearn NA
plad11 1 plearn_adults_plad11.xlsx NA adult redblue plearn NA
plad12 1 plearn_adults_plad12.xlsx NA adult redblue plearn NA
plad13 1 plearn_adults_plad13.xlsx NA adult redblue plearn NA
plad14 1 plearn_adults_plad14.xlsx NA adult redblue plearn NA
plad15 1 plearn_adults_plad15.xlsx NA adult redblue plearn NA

Audio Stimuli Properties

Plural Segment Duration (Background version)

In [21]:
options(repr.plot.width=4, repr.plot.height=3)
ggplot(subset(bg_audio_timings_with_metadata, plural_duration != 0)) + geom_histogram(aes(x=plural_duration)
) + facet_wrap(~voicing, ncol=1) + theme_bw() + geom_vline(xintercept=0) +xlab('duration (ms)')
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Prepositional Phrase Duration (Background version)

In [22]:
mean_pp_duration= mean(bg_audio_timings$pp_duration, na.rm=T) * 1000
options(repr.plot.width=4, repr.plot.height=3)
ggplot(bg_audio_timings) + geom_histogram(aes(x=pp_duration * 1000)) + theme_bw() + xlab('Prepositional Phrase Duration (ms)')
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Plural Segment Duration (Simplified version)

In [23]:
options(repr.plot.width=4, repr.plot.height=3)
ggplot(subset(rb_audio_timings_with_metadata, plural_duration > 0)) + geom_histogram(aes(x=plural_duration)
) + facet_wrap(~voicing, ncol=1) + theme_bw() + geom_vline(xintercept=0) +xlab('duration (ms)')
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
In [ ]:
#[ ]!!! check on the three outliers

Preprocess Eyetracking Data

In [50]:
# plz parallelize me
source('PLEARN_analysis_helper.R')
ed = list()
for (i in 1:nrow(subject_info)){
    participant = subject_info[i,]
    if (participant$filename == '' | is.null(participant$filename) | participant$include == 0){
        print(paste0('No eyetracking data for ', participant$id,' (or excluded), skipping...'))
    } else {
        if (participant$expt_version == 'scene'){
            audio_timings = bg_audio_timings
        } else if (participant$expt_version == 'redblue') {
            audio_timings = rb_audio_timings
        } else {
            stop('expt_version not recognized')
        }        
        ed[[participant$id]] = analyzeEyetrackingParticipant(
            'results/', 
            participant$filename, 
            audio_timings, 
            participant$type)
    }
}
[1] "processing results/smflip3_fixreport.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13104, not 13103”
[1] "processing results/pl00_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15018, not 15017”
[1] "processing results/pl01_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14335, not 14334”
[1] "processing results/pl03_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double()
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 6064, not 6063”
[1] "No eyetracking data for pl04 (or excluded), skipping..."
[1] "No eyetracking data for pl05 (or excluded), skipping..."
[1] "processing results/pl06_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13842, not 13841”
[1] "processing results/pl07_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15062, not 15061”
[1] "processing results/pl08_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15062, not 15061”
[1] "processing results/pl09_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15543, not 15542”
[1] "processing results/pl10_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 7542, not 7541”
[1] "processing results/adultpl12_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14246, not 14245”
[1] "processing results/adultpl13_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15302, not 15301”
[1] "processing results/adultpl14_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14431, not 14430”
[1] "processing results/adultpl15_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15050, not 15049”
[1] "processing results/adultpl16_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14415, not 14414”
[1] "processing results/pl11_fixations.txt..."
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 10897, not 10896”
[1] "processing results/pl13_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 608
[1] "will write to:"
[1] "results/pl13_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 10705, not 10704”
[1] "processing results/pl14_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 520
[1] "will write to:"
[1] "results/pl14_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 12993, not 12992”
[1] "processing results/pl15_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 725
[1] "will write to:"
[1] "results/pl15_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 11974, not 11973”
[1] "processing results/pl16_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 681
[1] "will write to:"
[1] "results/pl16_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14993, not 14992”
[1] "processing results/pl17_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 599
[1] "will write to:"
[1] "results/pl17_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 10580, not 10579”
[1] "processing results/pl18_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 748
[1] "will write to:"
[1] "results/pl18_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14385, not 14384”
[1] "processing results/pl19_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 546
[1] "will write to:"
[1] "results/pl19_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13635, not 13634”
[1] "processing results/pl20_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 735
[1] "will write to:"
[1] "results/pl20_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14247, not 14246”
[1] "No eyetracking data for pl21 (or excluded), skipping..."
[1] "processing results/pl22_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 805
[1] "will write to:"
[1] "results/pl22_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14177, not 14176”
[1] "processing results/pl23_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 591
[1] "will write to:"
[1] "results/pl23_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 8662, not 8661”
[1] "processing results/pl24_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 703
[1] "will write to:"
[1] "results/pl24_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 12881, not 12880”
[1] "processing results/pl25_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 545
[1] "will write to:"
[1] "results/pl25_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 9177, not 9176”
[1] "No eyetracking data for pl26 (or excluded), skipping..."
[1] "processing results/pl27_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 617
[1] "will write to:"
[1] "results/pl27_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14804, not 14803”
[1] "processing results/pl28_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 604
[1] "will write to:"
[1] "results/pl28_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13372, not 13371”
[1] "processing results/pl29_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 700
[1] "will write to:"
[1] "results/pl29_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13464, not 13463”
[1] "processing results/pl30_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 664
[1] "will write to:"
[1] "results/pl30_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 10928, not 10927”
[1] "processing results/pl31_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 489
[1] "will write to:"
[1] "results/pl31_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13773, not 13772”
[1] "processing results/pl33_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 665
[1] "will write to:"
[1] "results/pl33_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14083, not 14082”
[1] "processing results/pl36_fixations.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 722
[1] "will write to:"
[1] "results/pl36_fixations.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14722, not 14721”
[1] "processing results/plearn_adults_plad01.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 451
[1] "will write to:"
[1] "results/plearn_adults_plad01.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15653, not 15652”
[1] "processing results/plearn_adults_plad02.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 591
[1] "will write to:"
[1] "results/plearn_adults_plad02.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14061, not 14060”
[1] "processing results/plearn_adults_plad03.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 647
[1] "will write to:"
[1] "results/plearn_adults_plad03.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14231, not 14230”
[1] "processing results/plearn_adults_plad04.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 723
[1] "will write to:"
[1] "results/plearn_adults_plad04.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 12717, not 12716”
[1] "processing results/plearn_adults_plad05.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 837
[1] "will write to:"
[1] "results/plearn_adults_plad05.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14959, not 14958”
[1] "processing results/plearn_adults_plad06.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 388
[1] "will write to:"
[1] "results/plearn_adults_plad06.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15043, not 15042”
[1] "processing results/plearn_adults_plad07.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 729
[1] "will write to:"
[1] "results/plearn_adults_plad07.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14565, not 14564”
[1] "processing results/plearn_adults_plad08.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 302
[1] "will write to:"
[1] "results/plearn_adults_plad08.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15094, not 15093”
[1] "processing results/plearn_adults_plad09.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 588
[1] "will write to:"
[1] "results/plearn_adults_plad09.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15189, not 15188”
[1] "processing results/plearn_adults_plad10.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 595
[1] "will write to:"
[1] "results/plearn_adults_plad10.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13732, not 13731”
[1] "processing results/plearn_adults_plad11.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 468
[1] "will write to:"
[1] "results/plearn_adults_plad11.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 15188, not 15187”
[1] "processing results/plearn_adults_plad12.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 567
[1] "will write to:"
[1] "results/plearn_adults_plad12.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14599, not 14598”
[1] "processing results/plearn_adults_plad13.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 617
[1] "will write to:"
[1] "results/plearn_adults_plad13.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14720, not 14719”
[1] "processing results/plearn_adults_plad14.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 743
[1] "will write to:"
[1] "results/plearn_adults_plad14.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 13923, not 13922”
[1] "processing results/plearn_adults_plad15.xlsx..."
[1] "Dimensions of excel file read in:"
[1] 624
[1] "will write to:"
[1] "results/plearn_adults_plad15.txt"
Parsed with column specification:
cols(
  .default = col_character(),
  TRIAL_INDEX = col_double(),
  CURRENT_FIX_ADJUSTED = col_logical(),
  CURRENT_FIX_DURATION = col_double(),
  CURRENT_FIX_END = col_double(),
  CURRENT_FIX_INDEX = col_double(),
  CURRENT_FIX_IS_RT_END = col_logical(),
  CURRENT_FIX_MSG_COUNT = col_double(),
  CURRENT_FIX_PUPIL = col_double(),
  CURRENT_FIX_START = col_double(),
  CURRENT_FIX_X = col_double(),
  CURRENT_FIX_X_RESOLUTION = col_double(),
  CURRENT_FIX_Y = col_double(),
  CURRENT_FIX_Y_RESOLUTION = col_double(),
  IP_END_EVENT_MATCHED = col_logical(),
  IP_END_TIME = col_double(),
  IP_START_EVENT_MATCHED = col_logical(),
  IP_START_TIME = col_double(),
  TRIAL_FIXATION_TOTAL = col_double(),
  TRIAL_START_TIME = col_double(),
  RT = col_double()
  # ... with 8 more columns
)
See spec(...) for full column specifications.
Warning message:
“Length of logical index must be 1 or 14619, not 14618”
In [51]:
length(ed)
49

Preprocess / Plot Production Data

We preprocess the production data at this point because we want to be able to use production scores as a grouping variable in the eyetracking analysis

In [25]:
p_coded = read.csv('productions_coded.csv', stringsAsFactors=F)
print(names(p_coded))
print(nrow(p_coded))
[1] "child"         "itemId"        "Lemma"         "Singular.IPA" 
[5] "Singular.Code" "Plural.IPA"    "Plural.Code"   "Comments"     
[1] 400
In [26]:
codebook = c(
    'No data (0)',
    'No verbal response (1)',
    'Not identifiable/babble (2)',
    'Other word (not noun) (3)',
    'Noun from context (4)',
    'Singular form (5)',
    'Non-conventional plural form (6)',
    'Plural form, approximate articulation (7)',
    'Plural form, adult-like articulation (8)' 
)

codes = data.frame(code = seq(0,8), description = codebook)
codes$description = factor(codes$description, levels = codebook)
In [27]:
# get the item properties into here
pt_ds = read.csv('../PLEARN_experiments/plearn_productiveTask_datasource.csv')
p_coded = merge(p_coded, pt_ds, by.x='Lemma', by.y='s_form')
nrow(p_coded) # the decrease is because the remainder are practice
320
In [28]:
s_codes = aggregate(itemId ~ Singular.Code + child, p_coded, length)
names(s_codes) = c('code', 'child', 'count')
s_codes = merge(s_codes, codes)
s_codes$s_pl ='singular'
head(s_codes)
codechildcountdescriptions_pl
0 pl01 1 No data (0) singular
0 pl18 4 No data (0) singular
0 pl24 1 No data (0) singular
0 pl20 5 No data (0) singular
1 pl05 14 No verbal response (1)singular
1 pl15 1 No verbal response (1)singular
In [29]:
p_codes = aggregate(itemId ~ Plural.Code + child, p_coded, length)
names(p_codes) = c('code', 'child','count')
p_codes = merge(p_codes, codes)
p_codes$s_pl = 'plural'
head(p_codes)
codechildcountdescriptions_pl
0 pl01 2 No data (0) plural
0 pl18 3 No data (0) plural
0 pl19 1 No data (0) plural
0 pl20 4 No data (0) plural
1 pl01 2 No verbal response (1)plural
1 pl03 2 No verbal response (1)plural
In [30]:
code_counts = rbind.fill(s_codes, p_codes)
code_counts$s_pl = factor(code_counts$s_pl, levels =c('singular','plural'))
head(code_counts)
codechildcountdescriptions_pl
0 pl01 1 No data (0) singular
0 pl18 4 No data (0) singular
0 pl24 1 No data (0) singular
0 pl20 5 No data (0) singular
1 pl05 14 No verbal response (1)singular
1 pl15 1 No verbal response (1)singular
In [31]:
options(repr.plot.width=7, repr.plot.height=10)
ggplot(code_counts) + geom_bar(aes(x=description, y=count, fill=description), stat='identity'
) + theme_bw() +theme(legend.position="none") + theme(axis.text.x = element_text(angle = 45, 
hjust = 1)) + xlab('') + ylab('') + facet_grid(child~s_pl)
In [33]:
# coded trials after  singular productions, #5
p_codes = aggregate(itemId ~ Plural.Code + child, subset(p_coded, Singular.Code == 5), length)
names(p_codes) = c('code', 'child','count')
p_codes = merge(p_codes, codes)
p_codes$type = 'plural'
ggplot(p_codes) + geom_bar(aes(x=description, y=count, fill=description), stat='identity'
) + theme_bw() +theme(legend.position="none") + theme(axis.text.x = element_text(angle = 45, 
hjust = 1)) + xlab('') + ylab(''
) + ggtitle('Responses for Plural Trials after Singular Production') + facet_wrap(~child)

[ ] Sort the two above using the child age

Compute Production Scores

In [174]:
# note that both of these are subset to singular succeses
computeProductionScores = function(codes, method = 'narrow'){
    
    if (method == 'narrow'){
        # if they marked the plural in some way,was it adult-like?
        sum(codes %in% c(7,8)) / sum(codes %in% seq(6,8))
    } else if (method == 'broad') {
        # did they mark the plural?
        sum(codes %in% c(7,8)) / sum(codes %in% seq(2,8))
    }
}
In [175]:
narrow_production_scores = aggregate(Plural.Code ~ child, subset(p_coded, Singular.Code == 5), computeProductionScores)
names(narrow_production_scores) = c('participant_name', 'narrow_score')
broad_production_scores = aggregate(Plural.Code ~ child, subset(p_coded, Singular.Code == 5), function(x){computeProductionScores(x,'broad')})
names(broad_production_scores) = c('participant_name','broad_score')
In [176]:
if (!("broad_score" %in% names(subject_info))){
    subject_info = merge(merge(subject_info, narrow_production_scores, by='participant_name', all=T),
    broad_production_scores, all=T, by='participant_name')
}
In [177]:
subset(subject_info, !is.na(narrow_score))
participant_nameidincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_score
7pl01 pl01 1 pl01_fixations.txt 788 F child scene 25.83607 1.00000000 0.16666667
8pl03 pl03 1 pl03_fixations.txt 810 F child scene 26.55738 1.00000000 0.10000000
9pl04 NA NA NA NA NA NA NA NA NA 0.08333333 0.06666667
15pl10 pl10 1 pl10_fixations.txt 897 M child scene 29.40984 0.13333333 0.13333333
17pl13 pl13 1 pl13_fixations.xlsx1450 M child scene 47.54098 0.93333333 0.87500000
18pl14 pl14 1 pl14_fixations.xlsx1057 M child scene 34.65574 1.00000000 0.50000000
19pl15 pl15 1 pl15_fixations.xlsx 876 F child scene 28.72131 1.00000000 0.15384615
21pl16 NA NA NA NA NA NA NA NA NA 0.90000000 0.64285714
22pl17 pl17 1 pl17_fixations.xlsx 926 F child scene 30.36066 1.00000000 0.50000000
24pl19 pl19 1 pl19_fixations.xlsx 947 M child scene 31.04918 1.00000000 0.53846154
25pl20 pl20 1 pl20_fixations.xlsx1008 F child scene 33.04918 1.00000000 0.66666667
27pl22 pl22 1 pl22_fixations.xlsx1408 M child scene 46.16393 1.00000000 0.93750000
28pl23 pl23 1 pl23_fixations.xlsx 850 M child scene 27.86885 1.00000000 0.46666667
29pl24 pl24 1 pl24_fixations.xlsx1091 M child scene 35.77049 1.00000000 0.06666667
32pl27 pl27 1 pl27_fixations.xlsx1107 F child scene 36.29508 1.00000000 0.87500000

Associate Participant Information With All Records

In [56]:
ed_df = do.call('rbind', ed)
#augment ed_df with the properties from subject info
ed_df = merge(ed_df, subject_info, by='filename')
nrow(ed_df)
661657
In [57]:
# add the trial order as a grouping variable
ed_df$first3 = 'remainder'
ed_df$first3[ed_df$TRIAL_INDEX <= 7] = 'first 3 test trials'

Aggregate Eyetracking Timecourses

Background / PP Version

In [58]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'adult' & expt_version == 'scene'",
    mean_pp_duration = mean_pp_duration, group_title = 'Adults in Background Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
In [59]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'child'& expt_version == 'scene'",
    mean_pp_duration = mean_pp_duration, group_title = 'Children in Background Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
In [60]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'child' & age_in_days >= 915 & expt_version == 'scene'",
    mean_pp_duration = mean_pp_duration, group_title = 'Older Children (over 30 months) in Background Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
In [67]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'child' & broad_score > .5 & expt_version == 'scene' ",
    mean_pp_duration = mean_pp_duration, group_title = 'Children Producing Plural in Background Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
Warning message:
“Removed 2 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
Warning message:
“Removed 2 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
Warning message:
“Removed 3 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”

Red/Blue (Simplified) Version

In [68]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'adult' & expt_version == 'redblue'",
    mean_pp_duration = NULL, group_title = 'Adults in Simplified Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
In [69]:
source('PLEARN_analysis_helper.R')
options(repr.plot.width=6, repr.plot.height=6)
getGroupPlots(ed_df, filter_clause = "type == 'child' & expt_version == 'redblue'",
    mean_pp_duration = NULL, group_title = 'Children in Simplified Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 2 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 5 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
Warning message:
“Removed 5 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
Warning message:
“Removed 3 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
In [70]:
source('PLEARN_analysis_helper.R')
getGroupPlots(ed_df, filter_clause = "type == 'child' & age_in_days >= 915 & expt_version == 'redblue'",
    mean_pp_duration = NULL, group_title = 'Older Children (over 30 months) in Simplified Version')
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 1 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + novelty + target"
Warning message:
“Ignoring unknown parameters: shape”Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + voicing + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + animacystatus + target"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 3 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ label_at_onset"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + label_at_onset"
Warning message:
“Removed 2 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + first3"
Warning message:
“Removed 3 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "target ~ first3"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target+first3"
Warning message:
“Removed 30 rows containing missing values (geom_errorbar).”
[1] "facet clause:"
[1] "~ novelty"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + novelty"
Warning message:
“Ignoring unknown parameters: shape”
Warning message:
“Removed 4 rows containing missing values (geom_errorbar).”

Comparison Between Experiments

In [71]:
getGroupPlot(ed_df, 
        grouping_var = 'expt_version',
        filter_clause = "type == 'adult'",             
        facet_clause = '~ target',
        facet_type = 'wrap',
        loessSpan=.2, 
        x_start = -2000,
        x_end = 3000,
        mean_pp_duration= NULL,
        delay_ms= 367, 
        group_title = "Comparison of Experiment Versions")
[1] "facet clause:"
[1] "~ target"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + expt_version + target"
Warning message:
“Ignoring unknown parameters: shape”
In [72]:
getGroupPlot(ed_df, 
        grouping_var = 'target',
        filter_clause = "type == 'adult'",             
        facet_clause = '~ expt_version',
        facet_type = 'wrap',
        loessSpan=.2, 
        x_start = -2000,
        x_end = 3000,
        mean_pp_duration= NULL,
        delay_ms= 367, 
        group_title = "Comparison of Experiment Versions")
[1] "facet clause:"
[1] "~ expt_version"
[1] "Final aggregate statement is:"
[1] "cfial_bin ~ Time + target + expt_version"
Warning message:
“Ignoring unknown parameters: shape”

Participant Receptive Scores

In [ ]:
# [ ] Need to update the logic for yoked pair / difference scores
In [111]:
names(ed_df)
  1. 'filename'
  2. 'timeBin'
  3. 'FixationID'
  4. 'CURRENT_FIX_START'
  5. 'CURRENT_FIX_END'
  6. 'TRIAL_INDEX'
  7. 'CURRENT_FIX_INDEX'
  8. 'RECORDING_SESSION_LABEL'
  9. 'CURRENT_FIX_INTEREST_AREA_LABEL'
  10. 'RT'
  11. 'expt_index'
  12. 'target'
  13. 's_form'
  14. 'novelty'
  15. 'animacystatus'
  16. 'voicing'
  17. 'practice'
  18. 'Time'
  19. 'Nonset'
  20. 'participant_type'
  21. 'participant_name.x'
  22. 'label_at_onset'
  23. 'time_to_last_nonna'
  24. 'track_loss_at_0'
  25. 'participant_name.y'
  26. 'id'
  27. 'include'
  28. 'age_in_days'
  29. 'gender'
  30. 'type'
  31. 'expt_version'
  32. 'comment'
  33. 'age_in_months'
  34. 'narrow_score'
  35. 'broad_score'
  36. 'first3'
In [112]:
source('PLEARN_analysis_helper.R')
by_participant = split(ed_df, ed_df$filename)
normalizeMethods = c('none','yoked','preceding')
all_scores = do.call('rbind', lapply(normalizeMethods, function(normalizeMethod){
    do.call('rbind', lapply(by_participant, function(fixbin_df){
        test_participant_receptive_knowledge(fixbin_df, normalizeMethod, end_analysis_window= 2500)
    }))    
}))
In [113]:
options(repr.plot.width=7, repr.plot.height=5)
ggplot(subset(all_scores, normalizeMethod == 'none')) + geom_violin(
aes(y=prop_looks_to_target, x = participant_type,
colour = participant_type, fill = participant_type), alpha=.25) +
geom_point(aes(x=participant_type, y=prop_looks_to_target), colour ='black',
shape = 4, position=position_jitter(height=.03, width=0)) + facet_wrap(
~partition_name) + theme_bw() + geom_hline(yintercept=.5, 
linetype = 'dashed', colour='red') + ggtitle('Raw Proportion Looks to Target'
) + xlab('Participant Type') + ylab('Proportion Looks to Target')
In [114]:
options(repr.plot.width=7, repr.plot.height=5)
ggplot(subset(all_scores, normalizeMethod == 'yoked')) + geom_violin(
aes(y=prop_looks_to_target, x = participant_type,
colour = participant_type, fill = participant_type), alpha=.25) +
geom_point(aes(x=participant_type, y=prop_looks_to_target), colour ='black',
shape = 4, position=position_jitter(height=.03, width=0)) + facet_wrap(
~partition_name) + theme_bw() + geom_hline(yintercept=0, 
linetype = 'dashed', colour='red') + ggtitle('Yoked Trials'
) + xlab('Participant Type') + ylab('Increase in Target Looking (yoked trials)')
In [154]:
options(repr.plot.width=7, repr.plot.height=5)
ggplot(subset(all_scores, normalizeMethod == 'preceding')) + geom_violin(
aes(y=prop_looks_to_target, x = participant_type,
colour = participant_type, fill = participant_type), alpha=.25) +
geom_point(aes(x=participant_type, y=prop_looks_to_target), position=position_jitter(
height=.03, width=0), colour ='black', shape = 4) + facet_wrap(
~partition_name) + theme_bw() + geom_hline(yintercept=0, 
linetype = 'dashed', colour='red') + ggtitle('Adjusted for Baseline Preference'
) + xlab('Participant Type') + ylab('Increased in Target Looking (vs. preceding 2367 ms)')

Expressive Scores vs. Receptive Scores

In [119]:
subject_info[12,]
participant_nameidincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_score
12pl07 pl07 1 pl07_fixations.txtNA adult scene eyetracking only NA NA NA
In [184]:
child_receptive_scores = subset(all_scores, normalizeMethod == 'yoked' & contrast_type == '1-way')
exre = merge(subject_info, child_receptive_scores, by='participant_name')
head(exre)
participant_nameidincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_scoreparticipant_typecontrast_typeprobprop_looks_to_targetthresholdedpartition_namenormalizeMethod
adultpl12 adultpl12 1 adultpl12_fixations.txt NA adult scene NA NA NA adult 1-way 9.650597e-06 0.60567613 Demonstrates RK! (p < .05) 1-way: All yoked
adultpl13 adultpl13 1 adultpl13_fixations.txt NA adult scene NA NA NA adult 1-way 2.983074e-01 0.46287695 Unclear ( .05 < p < .33) 1-way: All yoked
adultpl14 adultpl14 1 adultpl14_fixations.txt NA adult scene NANA NA adult 1-way 5.699750e-01 0.39397740 Does not demonstrate RK! (p > .33) 1-way: All yoked
adultpl15 adultpl15 1 adultpl15_fixations.txt NA adult scene NA NA NA adult 1-way 2.505123e-02 0.63018958 Demonstrates RK! (p < .05) 1-way: All yoked
adultpl16 adultpl16 1 adultpl16_fixations.txt NA adult scene NA NA NA adult 1-way 1.076636e-01 0.56711393 Unclear ( .05 < p < .33) 1-way: All yoked
pl00 pl00 1 pl00_fixations.txt 769 F child scene 25.21311 NA NA child 1-way 9.999435e-01 -0.05984286 Does not demonstrate RK! (p > .33) 1-way: All yoked
In [193]:
options(repr.plot.width=6, repr.plot.height=6)
ggplot(exre) + geom_hline(yintercept=0,  color = 'red', linetype = 'dashed') + geom_jitter(
aes(x=broad_score, y=prop_looks_to_target, colour=age_in_months)
) + scale_colour_continuous(type = "viridis") + theme_classic() + ggtitle('Yoked Trials')
Warning message:
“Removed 17 rows containing missing values (geom_point).”
In [188]:
child_receptive_scores = subset(all_scores, normalizeMethod == 'none' & contrast_type == '1-way')
exre = merge(subject_info, child_receptive_scores, by='participant_name')
head(exre)
participant_nameidincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_scoreparticipant_typecontrast_typeprobprop_looks_to_targetthresholdedpartition_namenormalizeMethod
adultpl12 adultpl12 1 adultpl12_fixations.txt NA adult scene NA NA NA adult 1-way 7.683411e-09 0.8028381 Demonstrates RK! (p < .05) 1-way: All none
adultpl13 adultpl13 1 adultpl13_fixations.txt NA adult scene NA NA NA adult 1-way 2.675264e-04 0.7314385 Demonstrates RK! (p < .05) 1-way: All none
adultpl14 adultpl14 1 adultpl14_fixations.txt NA adult scene NA NA NA adult 1-way 1.003080e-02 0.6969887 Demonstrates RK! (p < .05) 1-way: All none
adultpl15 adultpl15 1 adultpl15_fixations.txt NA adult scene NA NA NA adult 1-way 2.328306e-10 0.8150948 Demonstrates RK! (p < .05) 1-way: All none
adultpl16 adultpl16 1 adultpl16_fixations.txt NA adult scene NA NA NA adult 1-way 7.683411e-09 0.7835570 Demonstrates RK! (p < .05) 1-way: All none
pl00 pl00 1 pl00_fixations.txt 769 F child scene 25.21311 NA NA child 1-way 7.016926e-01 0.4700786 Does not demonstrate RK! (p > .33) 1-way: All none
In [189]:
options(repr.plot.width=6, repr.plot.height=6)
ggplot(exre) + geom_hline(yintercept=.5,  color = 'red', linetype = 'dashed') + geom_jitter(
aes(x=broad_score, y=prop_looks_to_target, colour=age_in_months)
) + scale_colour_continuous(type = "viridis") + theme_classic() + ggtitle('No normalization')
Warning message:
“Removed 17 rows containing missing values (geom_point).”
In [190]:
child_receptive_scores = subset(all_scores, normalizeMethod == 'preceding' & contrast_type == '1-way')
exre = merge(subject_info, child_receptive_scores, by='participant_name')
head(exre)
participant_nameidincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_scoreparticipant_typecontrast_typeprobprop_looks_to_targetthresholdedpartition_namenormalizeMethod
adultpl12 adultpl12 1 adultpl12_fixations.txt NA adult scene NANA NA adult 1-way 0.8923364 0.36594459 Does not demonstrate RK! (p > .33) 1-way: All preceding
adultpl13 adultpl13 1 adultpl13_fixations.txt NA adult scene NANA NA adult 1-way 0.9999435 0.23076116 Does not demonstrate RK! (p > .33) 1-way: All preceding
adultpl14 adultpl14 1 adultpl14_fixations.txt NA adult scene NANA NA adult 1-way 0.9999903 0.28542984 Does not demonstrate RK! (p > .33) 1-way: All preceding
adultpl15 adultpl15 1 adultpl15_fixations.txt NA adult scene NANA NA adult 1-way 0.9899692 0.33582305 Does not demonstrate RK! (p > .33) 1-way: All preceding
adultpl16 adultpl16 1 adultpl16_fixations.txt NA adult scene NANA NA adult 1-way 0.9999903 0.25756008 Does not demonstrate RK! (p > .33) 1-way: All preceding
pl00 pl00 1 pl00_fixations.txt 769 F child scene 25.21311 NA NA child 1-way 0.9999435 0.04132156 Does not demonstrate RK! (p > .33) 1-way: All preceding
In [192]:
options(repr.plot.width=6, repr.plot.height=6)
ggplot(exre) + geom_hline(yintercept=0,  color = 'red', linetype = 'dashed') + geom_jitter(
aes(x=broad_score, y=prop_looks_to_target, colour=age_in_months)
) + scale_colour_continuous(type = "viridis") + theme_classic() + ggtitle('Normalized by Preceding')
Warning message:
“Removed 17 rows containing missing values (geom_point).”

Logistic Regression Models for Production

In [82]:
library('lme4')
In [83]:
p_coded$s_success = NA 
p_coded$s_success[p_coded$Singular.Code %in% c(5)] = 1
p_coded$s_success[p_coded$Singular.Code %in% seq(1,4)] = 0
p_coded$pl_success = NA 
p_coded$pl_success[p_coded$Plural.Code %in% c(7,8)] = 1
p_coded$pl_success[p_coded$Plural.Code %in% seq(1,6)] = 0
In [84]:
subset(p_coded, pl_success == T)
LemmachilditemIdSingular.IPASingular.CodePlural.IPAPlural.CodeCommentsnovel_idbackground_contextsimple_s_stimanimacyStatustest_indextrial_indexTrialPracticeNovelColorbooks_successpl_success
1ant pl20 10 ant 5 two ant 8 ! tree Look at the ant! animate 9 5 12 n ! 2 1 1
2ant pl14 10 ant 5 ant(th) 7 ! tree Look at the ant! animate 9 5 12 n ! 2 1 1
5ant pl16 10 I don't know what they ant 5 two ants on… two ants… two ant 8 ! tree Look at the ant! animate 9 5 12 n ! 2 1 1
7ant pl22 10 ant 5 ants 8 Had a potty accident; take intermission ! tree Look at the ant! animate 9 5 12 n ! 2 1 1
8boat pl20 6 0 0 two boats 8 ! hill Look at the boat! inanimate 13 7 13 n ! 2 NA 1
11boat pl10 6 boat splish splash 5 two boats 8 ! hill Look at the boat! inanimate 13 7 13 n ! 2 1 1
12boat pl24 6 it supposed to be in the water, boat 5 two boats 8 ! hill Look at the boat! inanimate 13 7 13 n ! 2 1 1
14boat pl22 6 boat 5 boats 8 ! hill Look at the boat! inanimate 13 7 13 n ! 2 1 1
16bug pl14 1 no….bug 5 bugs… more bugs 8 ! house Look at the bug! animate 1 1 3 n ! 2 1 1
21bug pl22 1 buug 5 bugs 8 ! house Look at the bug! animate 1 1 3 n ! 2 1 1
22cat pl13 16 cat 5 two cats 8 ! house Look at the cat! animate 10 5 16 n ! 1 1 1
25cat pl15 16 cat 5 cats…cat 7 ! house Look at the cat! animate 10 5 16 n ! 1 1 1
31cat pl27 16 cat 5 cat ssss 8 ! house Look at the cat! animate 10 5 16 n ! 1 1 1
32cat pl17 16 cat 5 cats 8 ! house Look at the cat! animate 10 5 16 n ! 1 1 1
40cow pl17 14 cow 5 cows 8 ! house Can you find the cow? animate 2 1 10 n ! 1 1 1
42cow pl19 14 cow 5 cows 8 short whistle s ! house Can you find the cow? animate 2 1 10 n ! 1 1 1
45cow pl15 14 caow 5 cow(sh) 7 ! house Can you find the cow? animate 2 1 10 n ! 1 1 1
53cup pl27 11 sippy cup 5 sippy cups 8 ! couch Can you find the cup? inanimate 14 7 4 n ! 1 1 1
57cup pl13 11 cu 5 two cups 8 ! couch Can you find the cup? inanimate 14 7 4 n ! 1 1 1
58cup pl19 11 cup 5 cupssss 8 ! couch Can you find the cup? inanimate 14 7 4 n ! 1 1 1
59cup pl23 11 cup 5 cups 8 ! couch Can you find the cup? inanimate 14 7 4 n ! 1 1 1
63deg pl16 3 it's too (agrees to hard) 3 two degs 8 2048-600 tree Can you find the deg? animate 17 9 1 n red 2 0 1
73duck pl22 13 duck 5 ducks 8 ! house Can you find the duck? animate 11 6 15 n ! 2 1 1
76dup pl14 12 dup 5 dup(th) 7 2028-600 hill Look at the dup! animate 25 13 8 n blue 2 1 1
78dup pl22 12 dup 5 dups 8 2028-600 hill Look at the dup! animate 25 13 8 n blue 2 1 1
79dup pl16 12 I don't know what the dup 5 two dups 8 2028-600 hill Look at the dup! animate 25 13 8 n blue 2 1 1
82egg pl16 16 e(gh) 5 two eggs 8 when asked what the end page says (the end) participant reports "I love you"! couch Can you find the egg? inanimate 5 3 10 n ! 2 1 1
85egg pl20 16 a egg 5 two eggs 8 ! couch Can you find the egg? inanimate 5 3 10 n ! 2 1 1
87egg pl22 16 egg 5 eggs 8 seems like a devoiced s ! couch Can you find the egg? inanimate 5 3 10 n ! 2 1 1
89fip pl27 6 fip 5 fips 8 laughs afterward 2030-600 couch Look at the fip! animate 26 13 12 n blue 1 1 1
233pog pl17 1 pog 5 pogs 8 2042-600 tree Look at the pog! inanimate 22 11 13 n red 1 1 1
240pog pl27 1 pog 5 pogs 8 2042-600 tree Look at the pog! inanimate 22 11 13 n red 1 1 1
243rabbit pl19 2 rabbit 5 a rabbits 8 mom encourages louder ! tree Can you find the rabbit? animate 12 6 14 n ! 1 1 1
250rabbit pl13 2 rabbit 5 two rabbits 8 ! tree Can you find the rabbit? animate 12 6 14 n ! 1 1 1
252rabbit pl17 2 ribbit 5 rebbets 8 ! tree Can you find the rabbit? animate 12 6 14 n ! 1 1 1
253rabbit pl04 2 rabbit 5 two rabbitsch 7 ! tree Can you find the rabbit? animate 12 6 14 n ! 1 1 1
254rabbit pl27 2 rabbit 5 rabbits 8 ! tree Can you find the rabbit? animate 12 6 14 n ! 1 1 1
255spoon pl20 14 soon 5 soons 8 ! hill Can you find the spoon? inanimate 7 4 7 n ! 2 1 1
256spoon pl14 14 soons 8 soons 8 ! hill Can you find the spoon? inanimate 7 4 7 n ! 2 NA 1
260spoon pl16 14 a poon. Poon. No no I can turn the pictures 5 poons… two poons 8 ! hill Can you find the spoon? inanimate 7 4 7 n ! 2 1 1
261spoon pl22 14 spoon 5 spoons 8 ! hill Can you find the spoon? inanimate 7 4 7 n ! 2 1 1
263star pl13 4 star 5 two stars 8 ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
264star pl01 4 ya, star, twinkle twinkle 5 tarsh, tarsh 7 ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
265star pl17 4 sar 5 sars 8 question intonation on the plural ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
267star pl27 4 staaar 5 staaas 8 ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
270star pl19 4 tar 5 tars 8 ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
273star pl03 4 tar 5 tarsh 7 ! couch Look at the star! inanimate 8 4 7 n ! 1 1 1
275teb pl20 8 teb…. Blue, rd, yellow, green 5 two tebs 8 2061-600 couch Look at the teb! inanimate 23 12 14 n red 2 1 1
278teb pl14 8 te ba 5 tebs 8 2061-600 couch Look at the teb! inanimate 23 12 14 n red 2 1 1
280teb pl22 8 teb 5 tebs 8 2061-600 couch Look at the teb! inanimate 23 12 14 n red 2 1 1
281teb pl16 8 no...I don't know… on one NA two tep(sh) 7 2061-600 couch Look at the teb! inanimate 23 12 14 n red 2 NA 1
285tep pl27 5 tep 5 teps 8 2005-600 house Look at the tep! inanimate 32 16 8 n red 1 1 1
286tep pl17 5 tep 5 teps 8 2005-600 house Look at the tep! inanimate 32 16 8 n red 1 1 1
294tep pl13 5 tep 5 two teps 8 2005-600 house Look at the tep! inanimate 32 16 8 n red 1 1 1
297tig pl23 13 tig 5 tig tigs 8 2057-600 hill Look at the tig! inanimate 24 12 15 n blue 1 1 1
301tig pl13 13 tig 5 two tigs 8 2057-600 hill Look at the tig! inanimate 24 12 15 n blue 1 1 1
312truck pl27 8 truck 5 truckssssss 8 ! couch Look at the truck! inanimate 16 8 11 n ! 1 1 1
314truck pl13 8 truck 5 two trucks 8 ! couch Look at the truck! inanimate 16 8 11 n ! 1 1 1
316truck pl19 8 a dump truck 5 dump trucks 8 ! couch Look at the truck! inanimate 16 8 11 n ! 1 1 1
319truck pl17 8 truck 5 trucks 8 ! couch Look at the truck! inanimate 16 8 11 n ! 1 1 1

Singular Production

In [85]:
table(p_coded$s_success)
  0   1 
 66 240 
In [86]:
library('optimx')
In [87]:
lm = glmer(s_success~novelty+ voicing + animacyStatus + 
    (novelty + voicing + animacyStatus |child) +(1|itemId), family=binomial, data=p_coded,
 control = glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=100000)))
summary(lm)
Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: s_success ~ novelty + voicing + animacyStatus + (novelty + voicing +  
    animacyStatus | child) + (1 | itemId)
   Data: p_coded
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))

     AIC      BIC   logLik deviance df.resid 
   235.8    291.7   -102.9    205.8      291 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.1872  0.0490  0.1441  0.2865  2.5895 

Random effects:
 Groups Name                   Variance Std.Dev. Corr             
 child  (Intercept)            5.3423   2.311                     
        noveltynovel           1.3357   1.156    -0.22            
        voicingvoiceless       1.1780   1.085     0.65 -0.11      
        animacyStatusinanimate 0.4212   0.649     0.53  0.34  0.90
 itemId (Intercept)            0.0000   0.000                     
Number of obs: 306, groups:  child, 20; itemId, 16

Fixed effects:
                       Estimate Std. Error z value Pr(>|z|)   
(Intercept)              2.5482     0.8971   2.840   0.0045 **
noveltynovel            -0.9003     0.8107  -1.111   0.2668   
voicingvoiceless         0.9322     0.7729   1.206   0.2278   
animacyStatusinanimate   0.4509     0.6672   0.676   0.4991   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) nvltyn vcngvc
noveltynovl -0.556              
voicngvclss -0.064 -0.026       
anmcySttsnn -0.196  0.040  0.151

Plural Production

In [88]:
table(subset(p_coded, Singular.Code ==5)$pl_success)
  0   1 
142  95 
In [89]:
lm = glmer(pl_success~novelty+ voicing + animacyStatus + 
    (novelty+ voicing + animacyStatus|child) +(1|itemId), family=binomial, 
    data=subset(p_coded, Singular.Code ==5),
 control = glmerControl(optimizer="bobyqa",optCtrl=list(maxfun=100000)))
In [90]:
summary(lm)
Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: pl_success ~ novelty + voicing + animacyStatus + (novelty + voicing +  
    animacyStatus | child) + (1 | itemId)
   Data: subset(p_coded, Singular.Code == 5)
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))

     AIC      BIC   logLik deviance df.resid 
   266.0    318.1   -118.0    236.0      222 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.7224 -0.4956 -0.1644  0.4877  2.3454 

Random effects:
 Groups Name                   Variance Std.Dev. Corr          
 child  (Intercept)            1.2191   1.1041                 
        noveltynovel           1.6924   1.3009   0.95          
        voicingvoiceless       0.2530   0.5030   1.00 0.97     
        animacyStatusinanimate 0.7404   0.8605   0.77 0.53 0.73
 itemId (Intercept)            0.0000   0.0000                 
Number of obs: 237, groups:  child, 19; itemId, 16

Fixed effects:
                       Estimate Std. Error z value Pr(>|z|)  
(Intercept)            -0.57688    0.43135  -1.337   0.1811  
noveltynovel           -1.30032    0.61887  -2.101   0.0356 *
voicingvoiceless       -0.05586    0.41457  -0.135   0.8928  
animacyStatusinanimate  0.04004    0.45521   0.088   0.9299  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) nvltyn vcngvc
noveltynovl  0.144              
voicngvclss -0.231  0.111       
anmcySttsnn -0.168  0.049  0.111

Age vs. Plural Knowledge

In [91]:
code_counts_with_age = merge(subject_info, code_counts, by.x='id', by.y='child')
code_counts_with_age = merge(code_counts_with_age, codes)
head(code_counts_with_age)
codedescriptionidparticipant_nameincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_scorecounts_pl
0 No data (0) pl18 pl18 1 pl18_fixations.xlsx1034 F child scene 33.90164 NaN 0.00000000 3 plural
0 No data (0) pl24 pl24 1 pl24_fixations.xlsx1091 M child scene 35.77049 1 0.06666667 1 singular
0 No data (0) pl20 pl20 1 pl20_fixations.xlsx1008 F child scene 33.04918 1 0.66666667 5 singular
0 No data (0) pl18 pl18 1 pl18_fixations.xlsx1034 F child scene 33.90164 NaN 0.00000000 4 singular
0 No data (0) pl01 pl01 1 pl01_fixations.txt 788 F child scene 25.83607 1 0.16666667 1 singular
0 No data (0) pl01 pl01 1 pl01_fixations.txt 788 F child scene 25.83607 1 0.16666667 2 plural
In [92]:
subset(code_counts_with_age, age_in_months > 35 & age_in_months < 38)
codedescriptionidparticipant_nameincludefilenameage_in_daysgendertypeexpt_versioncommentage_in_monthsnarrow_scorebroad_scorecounts_pl
20 No data (0) pl24 pl24 1 pl24_fixations.xlsx 1091 M child scene 35.77049 1 0.06666667 1 singular
443 Other word (not noun) (3) pl27 pl27 1 pl27_fixations.xlsx 1107 F child scene 36.29508 1 0.87500000 1 plural
453 Other word (not noun) (3) pl25 pl25 1 pl25_fixations.xlsx 1091 M child scene 35.77049 NaN 0.00000000 1 plural
555 Singular form (5) pl24 pl24 1 pl24_fixations.xlsx 1091 M child scene 35.77049 1 0.06666667 15 plural
565 Singular form (5) pl25 pl25 1 pl25_fixations.xlsx 1091 M child scene 35.77049 NaN 0.00000000 16 singular
655 Singular form (5) pl24 pl24 1 pl24_fixations.xlsx 1091 M child scene 35.77049 1 0.06666667 15 singular
715 Singular form (5) pl27 pl27 1 pl27_fixations.xlsx 1107 F child scene 36.29508 1 0.87500000 1 plural
785 Singular form (5) pl27 pl27 1 pl27_fixations.xlsx 1107 F child scene 36.29508 1 0.87500000 16 singular
825 Singular form (5) pl25 pl25 1 pl25_fixations.xlsx 1091 M child scene 35.77049 NaN 0.00000000 15 plural
1018 Plural form, adult-like articulation (8)pl24 pl24 1 pl24_fixations.xlsx 1091 M child scene 35.77049 1 0.06666667 1 plural
1028 Plural form, adult-like articulation (8)pl27 pl27 1 pl27_fixations.xlsx 1107 F child scene 36.29508 1 0.87500000 14 plural
In [93]:
options(repr.plot.width=6, repr.plot.height=6)
ggplot(code_counts_with_age) + geom_bar(aes(x=age_in_months, y=count, fill=description),
stat="identity",  width = 0.4, position="fill") + scale_fill_brewer(palette="Set3"
) + facet_wrap(~s_pl, nrow=2) + xlab('Age in Months') + ylab('Count'
) + theme_classic()
Warning message:
“position_stack requires non-overlapping x intervals”Warning message:
“position_stack requires non-overlapping x intervals”

Compare with existing studies:

  • Zapf and Smith (2007):
  • Zapf and Ettlinger (2011): for 22-35 months (m=25.8): 52% correct plurals; 33% singulars, remainder are non-answers Experimenter says "Can you tell Teddy to get __" and point to the singulars or the plurals. Common familiar nouns. Teddy bear picks up things or not, i.e. there is reinforcement learning.

Vocabulary vs. Plural Knowledge

In [ ]:
# pull in CDI scores

Response Time When Looking at Distractor

In [178]:
metadata_cols = c('animacystatus', 'background_context','distractorimage',
'distractorloc', 'expt_index', 'full_carrier', 'novel_id', 'novelcolor',
'novelty', 'order', 'pl_carrier', 'pl_form', 'pl_punct', 'pl_sentence',
'pl_wav_index', 'practice', 's_carrier', 's_form', 's_punct',
's_sentence', 's_wav_index', 'simple_pl_stim', 'simple_s_stim', 'target',
'targetimage', 'targetloc', 'targetside', 'test_index', 'trial', 'voicing', 'vowel_carrier',
'RECORDING_SESSION_LABEL')
In [179]:
names(ed_df)
  1. 'filename'
  2. 'timeBin'
  3. 'FixationID'
  4. 'CURRENT_FIX_START'
  5. 'CURRENT_FIX_END'
  6. 'TRIAL_INDEX'
  7. 'CURRENT_FIX_INDEX'
  8. 'RECORDING_SESSION_LABEL'
  9. 'CURRENT_FIX_INTEREST_AREA_LABEL'
  10. 'RT'
  11. 'expt_index'
  12. 'target'
  13. 's_form'
  14. 'novelty'
  15. 'animacystatus'
  16. 'voicing'
  17. 'practice'
  18. 'Time'
  19. 'Nonset'
  20. 'participant_type'
  21. 'participant_name.x'
  22. 'label_at_onset'
  23. 'time_to_last_nonna'
  24. 'track_loss_at_0'
  25. 'participant_name.y'
  26. 'id'
  27. 'include'
  28. 'age_in_days'
  29. 'gender'
  30. 'type'
  31. 'expt_version'
  32. 'comment'
  33. 'age_in_months'
  34. 'narrow_score'
  35. 'broad_score'
  36. 'first3'
In [180]:
fixreports = split(ed_df, ed_df$filename)
In [97]:
source('PLEARN_analysis_helper.R')
test_df = do.call('rbind',lapply(fixreports, function(fixreport){
    getParticipantRTs(380, fixreport, label_colname="CURRENT_FIX_INTEREST_AREA_LABEL", metadata_cols, include_non_roi_label=T)
}))
Error in if (last_fix[[label_colname]] == ".") {: missing value where TRUE/FALSE needed
Traceback:

1. do.call("rbind", lapply(fixreports, function(fixreport) {
 .     getParticipantRTs(380, fixreport, label_colname = "CURRENT_FIX_INTEREST_AREA_LABEL", 
 .         metadata_cols, include_non_roi_label = T)
 . }))
2. lapply(fixreports, function(fixreport) {
 .     getParticipantRTs(380, fixreport, label_colname = "CURRENT_FIX_INTEREST_AREA_LABEL", 
 .         metadata_cols, include_non_roi_label = T)
 . })
3. FUN(X[[i]], ...)
4. getParticipantRTs(380, fixreport, label_colname = "CURRENT_FIX_INTEREST_AREA_LABEL", 
 .     metadata_cols, include_non_roi_label = T)   # at line 3 of file <text>
5. do.call("rbind", lapply(gaze_trials, function(x) {
 .     getTrialRT(x, delay_ms, label_colname, metadata_cols, buffer_ms, 
 .         include_non_roi_label, target_labels, non_target_labels)
 . }))
6. lapply(gaze_trials, function(x) {
 .     getTrialRT(x, delay_ms, label_colname, metadata_cols, buffer_ms, 
 .         include_non_roi_label, target_labels, non_target_labels)
 . })
7. FUN(X[[i]], ...)
8. getTrialRT(x, delay_ms, label_colname, metadata_cols, buffer_ms, 
 .     include_non_roi_label, target_labels, non_target_labels)
In [ ]:
# 10/10/19: this is failing because of an edge case where we don't see any fixations before disambiguation
In [ ]:
getRTComparisonPlot = function(test_df, split_var, facet_var = NULL){
    
    agg_equation = paste("rt ~", split_var)
    if (!is.null(facet_var)){
        agg_equation = paste(agg_equation, "+", facet_var)
    }
    summary_df = do.call(data.frame, aggregate(as.formula(agg_equation), data = test_df, FUN = function(x)
        c(mean = mean(x), sd = sd(x))))
    print(names(summary_df))                   
    
    options(repr.plot.width=4, repr.plot.height=4)
    p1 = ggplot(test_df) + geom_violin(mapping=aes(y=rt, x=factor(test_df[[split_var
]]), colour=factor(test_df[[split_var]]))) + theme_bw(
) + geom_errorbar(data = summary_df, mapping=aes(x=factor(summary_df[[split_var
]]), ymin =  rt.mean - rt.sd, ymax = rt.mean + rt.sd), width = 0.1, alpha=.5) + geom_errorbar(data = summary_df, mapping=aes(x=factor(summary_df[[split_var
]]), ymin =  rt.mean, ymax = rt.mean)) + theme_bw(
) + geom_hline(yintercept=0, colour='black', linetype='dashed'
) + geom_hline(yintercept=367, colour='forestgreen') + coord_flip(
ylim= c(0,2000)) + xlab(split_var) + ylab(''
) + theme(legend.position="none")
    
    if (!is.null(facet_var)){
        options(repr.plot.width=4, repr.plot.height=8)
        p1 = p1 + facet_wrap(as.formula(paste('~', facet_var, sep='')), ncol=1)
    }
    print(p1)
                                               
    p2 = ggplot(test_df) + geom_histogram(mapping=aes(x=rt, fill=factor(test_df[[split_var]]))
    ) + theme_bw() + geom_errorbarh(data = summary_df, 
    mapping=aes(y=factor(summary_df[[split_var]]), xmin =  rt.mean - rt.sd, xmax = rt.mean + rt.sd),
    width = 0.1, alpha=.5) + geom_errorbarh(data = summary_df, mapping=aes(y=factor(summary_df[[split_var
    ]]), xmin =  rt.mean, xmax = rt.mean)) + theme_bw() + geom_vline(xintercept=0, 
    colour='black', linetype='dashed') + geom_vline(xintercept=367, colour='forestgreen'
    ) + coord_cartesian(xlim= c(0,2000)) + theme(legend.position="none")
    
    if (!is.null(facet_var)){
        options(repr.plot.width=4, repr.plot.height=8)
        p2 = p2 + facet_wrap(as.formula(paste('~', facet_var, '+', split_var, sep='')), ncol=1)
    } else {
        p2 = p2 + facet_wrap(as.formula(paste('~', split_var, sep='')), ncol=1)
    }
    #print(p2)                                  
                                               
                                               
}
In [ ]:
names(test_df)
In [ ]:
getRTComparisonPlot(test_df, split_var = 'RECORDING_SESSION_LABEL', facet_var='target')
In [ ]:
getRTComparisonPlot(test_df, split_var = 'target')
In [ ]:
getRTComparisonPlot(test_df, split_var = 'target', facet_var = 'RECORDING_SESSION_LABEL')
In [ ]:
getRTComparisonPlot(test_df,split_var = 'voicing', facet_var='target')
In [ ]:
getRTComparisonPlot(test_df,split_var = 'novelty', facet_var='target')
In [ ]:
getRTComparisonPlot(test_df,split_var = 'animacystatus', facet_var='target')
In [ ]:
names(test_df)
In [ ]:
library('lme4')
lm = lmer(rt ~ novelty + voicing + animacystatus + 
    (novelty + voicing + animacystatus | RECORDING_SESSION_LABEL) +(1|s_form), data=
 test_df, )
summary(lm)

Preference Before Disambiguation

In [194]:
ed_df$participant_name = ed_df$participant_name.x
In [195]:
beforeafter_disambig_df = subset(ed_df, 
    CURRENT_FIX_INTEREST_AREA_LABEL %in% c('TARGET','DISTRACTOR')) 
beforeafter_disambig_df$looking_at_plural = 0
beforeafter_disambig_df$looking_at_plural[
    beforeafter_disambig_df$CURRENT_FIX_INTEREST_AREA_LABEL == 'TARGET' & 
    beforeafter_disambig_df$target == 'pl'] = 1
beforeafter_disambig_df$looking_at_plural[
    beforeafter_disambig_df$CURRENT_FIX_INTEREST_AREA_LABEL == 'DISTRACTOR' & 
    beforeafter_disambig_df$target == 's'] = 1
beforeafter_disambig_df$beforeafter = 'After Disambiguation'
beforeafter_disambig_df$beforeafter[beforeafter_disambig_df$Time < 367] = 'Before Disambiguation'
beforeafter_disambig_preference = aggregate(looking_at_plural ~ participant_name +
    type + beforeafter + TRIAL_INDEX, 
    beforeafter_disambig_df, mean)

beforeafter_disambig_by_subject = do.call(data.frame, aggregate(looking_at_plural ~ participant_name + type +  beforeafter, beforeafter_disambig_preference, FUN = function(x){c(mean=mean(x), sd = sd(x))}))                                       

print(beforeafter_disambig_by_subject)
            participant_name  type           beforeafter looking_at_plural.mean
1        adultpl12_fixations adult  After Disambiguation              0.5042678
2        adultpl13_fixations adult  After Disambiguation              0.5158088
3        adultpl14_fixations adult  After Disambiguation              0.5038737
4        adultpl15_fixations adult  After Disambiguation              0.4857293
5        adultpl16_fixations adult  After Disambiguation              0.4912726
6             pl06_fixations adult  After Disambiguation              0.5088005
7             pl07_fixations adult  After Disambiguation              0.4915883
8             pl08_fixations adult  After Disambiguation              0.5117331
9  plearn_adults_plad01.xlsx adult  After Disambiguation              0.4974054
10 plearn_adults_plad02.xlsx adult  After Disambiguation              0.4854233
11 plearn_adults_plad03.xlsx adult  After Disambiguation              0.4978965
12 plearn_adults_plad04.xlsx adult  After Disambiguation              0.5064163
13 plearn_adults_plad05.xlsx adult  After Disambiguation              0.4969425
14 plearn_adults_plad06.xlsx adult  After Disambiguation              0.5138653
15 plearn_adults_plad07.xlsx adult  After Disambiguation              0.4843438
16 plearn_adults_plad08.xlsx adult  After Disambiguation              0.4996597
17 plearn_adults_plad09.xlsx adult  After Disambiguation              0.4808543
18 plearn_adults_plad10.xlsx adult  After Disambiguation              0.5243187
19 plearn_adults_plad11.xlsx adult  After Disambiguation              0.4992369
20 plearn_adults_plad12.xlsx adult  After Disambiguation              0.5062847
21 plearn_adults_plad13.xlsx adult  After Disambiguation              0.4773936
22 plearn_adults_plad14.xlsx adult  After Disambiguation              0.4783569
23 plearn_adults_plad15.xlsx adult  After Disambiguation              0.4832023
24         smflip3_fixreport adult  After Disambiguation              0.5012732
25            pl00_fixations child  After Disambiguation              0.5537850
26            pl01_fixations child  After Disambiguation              0.5799120
27            pl03_fixations child  After Disambiguation              0.4929007
28            pl09_fixations child  After Disambiguation              0.5663096
29            pl10_fixations child  After Disambiguation              0.5438719
30            pl11_fixations child  After Disambiguation              0.5520875
31       pl13_fixations.xlsx child  After Disambiguation              0.6219557
32       pl14_fixations.xlsx child  After Disambiguation              0.4986832
33       pl15_fixations.xlsx child  After Disambiguation              0.5590291
34       pl16_fixations.xlsx child  After Disambiguation              0.4227523
35       pl17_fixations.xlsx child  After Disambiguation              0.4051303
36       pl18_fixations.xlsx child  After Disambiguation              0.6106546
37       pl19_fixations.xlsx child  After Disambiguation              0.5237025
38       pl20_fixations.xlsx child  After Disambiguation              0.5341703
39       pl22_fixations.xlsx child  After Disambiguation              0.5854573
40       pl23_fixations.xlsx child  After Disambiguation              0.3910712
41       pl24_fixations.xlsx child  After Disambiguation              0.5359119
42       pl25_fixations.xlsx child  After Disambiguation              0.6123308
43       pl27_fixations.xlsx child  After Disambiguation              0.4784586
44       pl28_fixations.xlsx child  After Disambiguation              0.4945517
45       pl29_fixations.xlsx child  After Disambiguation              0.4958956
46       pl30_fixations.xlsx child  After Disambiguation              0.5752203
47       pl31_fixations.xlsx child  After Disambiguation              0.5076421
48       pl33_fixations.xlsx child  After Disambiguation              0.5272493
49       pl36_fixations.xlsx child  After Disambiguation              0.5188297
50       adultpl12_fixations adult Before Disambiguation              0.4697495
51       adultpl13_fixations adult Before Disambiguation              0.5649460
52       adultpl14_fixations adult Before Disambiguation              0.5002115
53       adultpl15_fixations adult Before Disambiguation              0.5110441
54       adultpl16_fixations adult Before Disambiguation              0.5283740
55            pl06_fixations adult Before Disambiguation              0.5043211
56            pl07_fixations adult Before Disambiguation              0.4643066
57            pl08_fixations adult Before Disambiguation              0.5436851
58 plearn_adults_plad01.xlsx adult Before Disambiguation              0.5723266
59 plearn_adults_plad02.xlsx adult Before Disambiguation              0.5809147
60 plearn_adults_plad03.xlsx adult Before Disambiguation              0.5726449
61 plearn_adults_plad04.xlsx adult Before Disambiguation              0.6057335
62 plearn_adults_plad05.xlsx adult Before Disambiguation              0.5753207
63 plearn_adults_plad06.xlsx adult Before Disambiguation              0.5686803
64 plearn_adults_plad07.xlsx adult Before Disambiguation              0.5029924
65 plearn_adults_plad08.xlsx adult Before Disambiguation              0.5299663
66 plearn_adults_plad09.xlsx adult Before Disambiguation              0.5544098
67 plearn_adults_plad10.xlsx adult Before Disambiguation              0.4995726
68 plearn_adults_plad11.xlsx adult Before Disambiguation              0.5467651
69 plearn_adults_plad12.xlsx adult Before Disambiguation              0.5508098
70 plearn_adults_plad13.xlsx adult Before Disambiguation              0.5646364
71 plearn_adults_plad14.xlsx adult Before Disambiguation              0.5647836
72 plearn_adults_plad15.xlsx adult Before Disambiguation              0.4929646
73         smflip3_fixreport adult Before Disambiguation              0.5480633
74            pl00_fixations child Before Disambiguation              0.5555403
75            pl01_fixations child Before Disambiguation              0.5768089
76            pl03_fixations child Before Disambiguation              0.6547316
77            pl09_fixations child Before Disambiguation              0.6281174
78            pl10_fixations child Before Disambiguation              0.5447676
79            pl11_fixations child Before Disambiguation              0.4789075
80       pl13_fixations.xlsx child Before Disambiguation              0.5392988
81       pl14_fixations.xlsx child Before Disambiguation              0.5291387
82       pl15_fixations.xlsx child Before Disambiguation              0.5330323
83       pl16_fixations.xlsx child Before Disambiguation              0.5603073
84       pl17_fixations.xlsx child Before Disambiguation              0.6219157
85       pl18_fixations.xlsx child Before Disambiguation              0.5180734
86       pl19_fixations.xlsx child Before Disambiguation              0.4557542
87       pl20_fixations.xlsx child Before Disambiguation              0.5566214
88       pl22_fixations.xlsx child Before Disambiguation              0.5243279
89       pl23_fixations.xlsx child Before Disambiguation              0.5581646
90       pl24_fixations.xlsx child Before Disambiguation              0.5651314
91       pl25_fixations.xlsx child Before Disambiguation              0.5152689
92       pl27_fixations.xlsx child Before Disambiguation              0.5556331
93       pl28_fixations.xlsx child Before Disambiguation              0.5393288
94       pl29_fixations.xlsx child Before Disambiguation              0.5397959
95       pl30_fixations.xlsx child Before Disambiguation              0.5626772
96       pl31_fixations.xlsx child Before Disambiguation              0.6105334
97       pl33_fixations.xlsx child Before Disambiguation              0.4971769
98       pl36_fixations.xlsx child Before Disambiguation              0.5048699
   looking_at_plural.sd
1            0.44475922
2            0.35949535
3            0.40782757
4            0.45338155
5            0.43461512
6            0.46628502
7            0.44128874
8            0.44219022
9            0.46179769
10           0.45288550
11           0.41637784
12           0.43606253
13           0.46023293
14           0.45134128
15           0.42252756
16           0.47123758
17           0.43287710
18           0.43336669
19           0.46669849
20           0.45221232
21           0.45181992
22           0.45093683
23           0.43873204
24           0.33552290
25           0.31601546
26           0.17936839
27           0.25915815
28           0.35293079
29           0.29721194
30           0.25665939
31           0.27805795
32           0.23435535
33           0.22795547
34           0.22551579
35           0.30111990
36           0.23237862
37           0.22925241
38           0.16761586
39           0.18150663
40           0.23736101
41           0.28331755
42           0.29045196
43           0.24529988
44           0.17844125
45           0.17384779
46           0.26847287
47           0.21719511
48           0.26540410
49           0.18612437
50           0.18443812
51           0.19310621
52           0.32728089
53           0.24826077
54           0.15221514
55           0.20155161
56           0.17382636
57           0.20889243
58           0.16306815
59           0.19728917
60           0.17364827
61           0.32945754
62           0.09867671
63           0.19981922
64           0.21719277
65           0.36041767
66           0.20928538
67           0.24459995
68           0.33726588
69           0.23243691
70           0.22045906
71           0.11754280
72           0.22049410
73           0.21290987
74           0.30670984
75           0.21348128
76           0.20539461
77           0.29017982
78           0.30462036
79           0.27678600
80           0.21383343
81           0.22753340
82           0.19577386
83           0.17308264
84           0.26329651
85           0.20352239
86           0.22948369
87           0.13067776
88           0.18010164
89           0.28477282
90           0.27484083
91           0.29908800
92           0.26456090
93           0.19830563
94           0.14928096
95           0.28647065
96           0.24001034
97           0.25872863
98           0.15492586
In [196]:
beforeafter_disambig_by_subject$looking_at_plural_low = 
    beforeafter_disambig_by_subject$looking_at_plural.mean - beforeafter_disambig_by_subject$looking_at_plural.sd
beforeafter_disambig_by_subject$looking_at_plural_high = 
    beforeafter_disambig_by_subject$looking_at_plural.mean + beforeafter_disambig_by_subject$looking_at_plural.sd
In [197]:
options(repr.plot.width=4, repr.plot.height=4)
ggplot(subset(beforeafter_disambig_by_subject, beforeafter == "Before Disambiguation" &
type == 'adult')) + geom_errorbar(aes(x=participant_name, ymin= looking_at_plural_low,
 ymax= looking_at_plural_high), color='red') + geom_point(aes(x=participant_name, 
y=looking_at_plural.mean)) + theme_classic() + geom_hline(yintercept=.5, linetype = 'dashed'
) + xlab('Participant') + ylab('Mean Proportion Looks to Plural\n Before Disambiguation (SD)'
) + theme(axis.text.x = element_text(angle = 90, hjust = 1)) + facet_wrap(~type)
In [198]:
options(repr.plot.width=4, repr.plot.height=4)
ggplot(subset(beforeafter_disambig_by_subject, beforeafter == "Before Disambiguation" &
type == 'child')) + geom_errorbar(aes(x=participant_name, ymin= looking_at_plural_low,
 ymax= looking_at_plural_high), color='red') + geom_point(aes(x=participant_name, 
y=looking_at_plural.mean)) + theme_classic() + geom_hline(yintercept=.5, linetype = 'dashed'
) + xlab('Participant') + ylab('Mean Proportion Looks to Plural\n Before Disambiguation (SD)'
) + theme(axis.text.x = element_text(angle = 90, hjust = 1)) + facet_wrap(~type)
In [ ]:
# should the last fix before disambig be excluded
#[X] Confirm that 0 is the point of disambig for everyone
#[X] propagate the information about the trials
#[X] Make sure that my ordering is doing the right thing
#[X] how to account for the 200 ms exclusion
#[X] have a bit of a buffer on either side of 0 in case there’s an NA instead of a 0/1 in that exact timebin
#    -- so far this is just looking backwards
#[ ] need to recompute wrt the beginning of the /s/ or /z/ segment, not the end

Experimental Visualizations + Analyses

Binomial Test for Receptive Knowledge

In [ ]:
# requires updating since refactoring
In [ ]:
pl06_fixbins$is_looking_at_target  = as.numeric(pl06_fixbins$CURRENT_FIX_INTEREST_AREA_LABEL == 'TARGET')
In [ ]:
rlist = getPlotForMethod(fixbin_dfs, adult_fixbin_dfs, 'none')
options(repr.plot.width=10, repr.plot.height=5)
print(rlist$p1)
ggsave('figures/binomialTest_nopreprocessing.pdf', width=20, height=10)
In [ ]:
print(rlist$p2)

False negative rate around .1 on 2-way contrasts when halfway between adult-like knowledge and zero knowledge

False positve rate of around .02 on 1-way contrasts when zero-knowledge

In [ ]:
# takes a long time to run because of the bootstrapping
sim_yoked = getPlotForMethod(fixbin_dfs,adult_fixbin_dfs, 'yoked')
options(repr.plot.width=10, repr.plot.height=5)
print(sim_yoked$p1)
ggsave('figures/binomialTest_yoked.pdf', width=20, height=10)
In [ ]:
sim_yoked$p2
In [ ]:
# takes a long time to run because of the bootstrapping
sim_preceding = getPlotForMethod(fixbin_dfs,adult_fixbin_dfs, 'preceding')
options(repr.plot.width=10, repr.plot.height=5)
print(sim_preceding$p1)
ggsave('figures/binomialTest_preceding.pdf', width=20, height=10)
In [ ]:
sim_preceding$p2

Gaze Stickiness Plot

In [ ]:
fixreport_path = 'results/smflip3_fixreport.txt'
participant_name = gsub('.txt','',tail(strsplit(fixreport_path, '/')[[1]]))[2]
In [ ]:
gaze = blabr::fixations_report(fixreport_path)
gaze = merge(gaze, audio_timings[,c('audiotarget','disambig_time')])
gaze$CURRENT_FIX_END = gaze$CURRENT_FIX_END - gaze$disambig_time
gaze$CURRENT_FIX_START = gaze$CURRENT_FIX_START - gaze$disambig_time
In [ ]:
fixbins = binifyFixations(gaze, keepCols=c("RECORDING_SESSION_LABEL",
"CURRENT_FIX_INTEREST_AREA_LABEL",
"RT",
"expt_index",
"target",
"s_form",
"novelty",
"animacystatus",
"voicing"))
subset(fixbins, Time==3200)
In [ ]:
ggplot(subset(fixbins, s_form =='mip')) + geom_point(aes(x=Time, y=CURRENT_FIX_INTEREST_AREA_LABEL)
) + facet_wrap(~s_form * target) + geom_vline(xintercept=0,
	colour='black')
In [ ]:
ggplot(subset(sm_fixbins, CURRENT_FIX_INTEREST_AREA_LABEL!='.')) + geom_point(aes(x=Time,
                                                                               y=s_form, colour=s_form)) + facet_wrap(CURRENT_FIX_INTEREST_AREA_LABEL ~ target) + geom_vline(xintercept=0, colour='black')
In [ ]:
ggplot(subset(pl00_fixbins, CURRENT_FIX_INTEREST_AREA_LABEL!='.')) + geom_point(aes(x=Time,
    y=s_form, colour=s_form)) + facet_wrap(CURRENT_FIX_INTEREST_AREA_LABEL ~ target) + geom_vline(xintercept=0, colour='black')
In [ ]:
ggplot(subset(pl01_fixbins, CURRENT_FIX_INTEREST_AREA_LABEL!='.')) + geom_point(aes(x=Time,
    y=s_form, colour=s_form)) + facet_wrap(CURRENT_FIX_INTEREST_AREA_LABEL ~ target) + geom_vline(xintercept=0, colour='black')
In [ ]:
ggplot(subset(pl03_fixbins, CURRENT_FIX_INTEREST_AREA_LABEL!='.')) + geom_point(aes(x=Time,
    y=s_form, colour=s_form)) + facet_wrap(CURRENT_FIX_INTEREST_AREA_LABEL ~ target) + geom_vline(xintercept=0, colour='black')